【iOS】开发笔记(一)

分享一些常见的知识点,对初学者可能帮助更大,因为这些知识点都是我刚接触 iOS 开发时容易搞坏事的东西。当然现在开发时也会偶尔一时想不起来一些东西,唉,老了~

iPhone 尺寸

By Leo

PCH 路径配置

By Leo

Date Format

leodev.me

UIScrollView 属性

By Leo

By Leo

VC 创建优先级

By Leo

VC 生命周期

By Leo

启动图片的命名规范

By Leo

程序启动的完整过程

  1. main 函数

  2. UIApplicationMain

    2.1 创建 UIApplication 对象
    2.2 创建 UIApplication 的 delegate 对象

  3. delegate 对象开始处理 (监听) 系统事件 (没有 storyboard)

    3.1 程序启动完毕的时候, 就会调用代理的 application:didFinishLaunchingWithOptions: 方法
    3.2 在 application:didFinishLaunchingWithOptions: 中创建 UIWindow
    3.3 创建和设置 UIWindow 的 rootViewController
    3.4 显示窗口

  4. 根据 Info.plist 获得最主要 storyboard 的文件名,加载最主要的 storyboard (有 storyboard)

    4.1 创建 UIWindow
    4.2 创建和设置 UIWindow 的 rootViewController
    4.3 显示窗口

UIPickerView 和 UIDatePicker 属性和方法

一. UIPickerView

  1. UIPickerView 的常见属性

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // 数据源 (用来告诉 UIPickerView 有多少列多少行)
    @property(nonatomic,assign) id<UIPickerViewDataSource> dataSource;

    // 代理 (用来告诉 UIPickerView 每 1 列的每 1 行显示什么内容, 监听 UIPickerView 的选择)
    @property(nonatomic,assign) id<UIPickerViewDelegate> delegate;

    // 是否要显示选中的指示器
    @property(nonatomic) BOOL showsSelectionIndicator;

    // 一共有多少列
    @property(nonatomic,readonly) NSInteger numberOfComponents;
  2. UIPickerView 的常见方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // 重新刷新所有列
    - (void)reloadAllComponents;

    // 重新刷新第 component 列
    - (void)reloadComponent:(NSInteger)component;

    // 主动选中第 component 列的第 row 行
    - (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated;

    // 获得第 component 列的当前选中的行号
    - (NSInteger)selectedRowInComponent:(NSInteger)component;
  3. 数据源方法 (UIPickerViewDataSource)

    1
    2
    3
    4
    5
    // 一共有多少列
    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;

    // 第 component 列一共有多少行
    - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
  4. 代理方法 (UIPickerViewDelegate)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // 第 component 列的宽度是多少
    - (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component;

    // 第 component 列的行高是多少
    - (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component;

    // 第 component 列第 row 行显示什么文字
    - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;

    // 第 component 列第 row 行显示怎样的 view (内容)
    - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view;

    // 选中了 pickerView 的第 component 列第 row 行
    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;

二. UIDatePicker

  1. UIDatePicker 常见属性

    1
    2
    3
    4
    5
    // datePicker 的显示模式
    @property (nonatomic) UIDatePickerMode datePickerMode;

    // 显示的区域语言
    @property (nonatomic, retain) NSLocale *locale;
  2. 监听 UIDatePicker 的选择

    1
    // 因为 UIDatePicker 继承自 UIControl, 所以通过 addTarget:... 监听

知乎体

一个典型的知乎体就是:

“谢邀。” 开头。

“以上。” 结尾。

联系与捐赠

  • Mail: echo bGVvZGF4aWFAZ21haWwuY29tCg== | base64 -D
  • GitHub: iTofu

以上。